package controleur;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.net.Inet4Address;
import java.net.InetAddress;
import java.net.UnknownHostException;

import javax.swing.RepaintManager;

import Econf_Audio.Receveur_client;

import model.*;
import vue.*;

public class ControlConference implements ActionListener {
	
	// Attributs
	int etatControl;
	private Fenetre fenetre;
	private String idConf;
	private String DN;
	private String action;
	private eConf eConf;

	
	// Observateur
	
	public ControlConference(Fenetre fe, eConf eConf) {
		fenetre = fe;
		this.eConf = eConf;
	}
	
	public ControlConference(Fenetre fe, String idConf, String DN, String action, eConf eConf) {
		fenetre = fe;
		this.idConf = idConf;
		this.DN = DN;
		this.action = action;
		this.eConf = eConf;
	}
	
	public ControlConference(Fenetre fe, String action, eConf eConf) {
		fenetre = fe;
		this.action = action;
		this.eConf = eConf;
	}

 // Définition des actions
	public void actionPerformed(ActionEvent arg0) {
		
		// Détermination du type d'action "pour la conférence"
		if (action.equals("Play") | action.equals("Stop")){
			
			System.out.println("Action Play or Stop, conférence: "+idConf+" - Utilisateur: "+DN);
			String description = action+"@"+idConf+"@"+DN;
			// Envoie au serveur une demande Conférence (idConf, DN, action)
			eConf.EnvoiDemandeAuServeur(Constantes.DEMANDE_PLAY_STOP_DemandeParole, description);
			
			eConf.RecoiReponseDuServeur();
			System.out.println("Quit Control Conférence");
			
		}
		
		// Détermination du type d'action "pour la conférence"
		if (action.equals("DemandeParole")){
			
			System.out.println("Action DemandeParole, conférence: "+idConf+" - Utilisateur: "+DN);
			// Get info of user
				eConf.EnvoiDemandeAuServeur(Constantes.DEMANDE_INFOS_PERSONELLES_UTILISATEUR, "Demande informations personnelles utilisateur courant");
				Object[] profile = eConf.ReceptionObjet1DFromServer();
				DN = profile[0].toString()+" "+profile[1].toString();
			
			String description = action+"@"+idConf+"@"+DN;
			// Envoie au serveur une demande Conférence (idConf, DN, action)
			eConf.EnvoiDemandeAuServeur(Constantes.DEMANDE_PLAY_STOP_DemandeParole, description);
			
			eConf.RecoiReponseDuServeur();
			System.out.println("Quit Control Conférence");
			
		}
		
		// Détermination du type d'action "Volume muet"
		if (action.equals("volumeMuet")){
			System.out.println("Action volumeMuet");
			// Envoie au serveur une demande Orateur (idConf, DN)
			
		}
		
		// Détermination du type d'action "Volume up"
		if (action.equals("volumeUp")){
			System.out.println("Action volumeUp");
			// Envoie au serveur une demande Orateur (idConf, DN)
			
		}
		
		// Détermination du type d'action "Volume up"
		if (action.equals("volumeDown")){
			System.out.println("Action volumeDown");
			// Envoie au serveur une demande Orateur (idConf, DN)
			
		}
		
	}
}